As networking technologies grow, including the Internet, so do their capabilities and requirements. For many years, users dialed up to access the Internet at speeds of 14.4 kilobits per second (kps), then 28.8 kps and 56.6 kps. Then ISDN lines made 128 kps a possibility. Currently cable modems and DSL provide extremely fast connections with high bandwidth to home users. Other technologies such as T1 and T3 lines provide possibly even faster connections and are usually implemented by businesses and universities. As these technologies are increasing in capabilities, so too is the size and amount of the data traveling from one networked device to another. For example, when 14.4 kps connections were prominent, a file of a few hundred kilobytes was considered quite large and took a while to download. With current broadband technologies utilizing cable modems and DSL, a file of multiple megabytes is able to be downloaded in a few minutes. Hence, technology has improved substantially, enabling larger files to be downloaded in a short amount of time. However, many data files are currently in the range of gigabytes such as movie files which could take hours to download even on fast connections and would take days with older dial-up connections. Since the Internet and other networks are being used to couple everything together lately, even toasters and refrigerators, many attempts have been made to make network connections more efficient utilizing data processing techniques.
One technique is to compress the data before sending it over the network. However, that has its drawbacks of adding steps of compressing the data and before it is sent and uncompressing the data after it is received, simply adding time to the process in a different way. Furthermore, since many files like .mp3s are already compressed yet still quite large, compressing them again will do little if anything to improve network speed.
Another technique is described in U.S. Patent App. No. 2004/0148306 to Moulton, et al. Moulton describes a hash file system that is based and organized upon hashes and which is able to eliminate redundant copies of aggregate blocks of data or parts of data blocks from the system. The hash file system taught by Moulton utilizes hash values for computer files or file pieces which are produced by a checksum generating program, engine or algorithm. The hash file system as taught by Moulton is able to be used as a network accelerator by sending hashes for the data instead of the data itself.